문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 마인크래프트/팩/데이터 팩 (문단 편집) === functions / 함수[anchor(functions)] === .mcfunction 파일 내부에 유효한 마인크래프트 명령어를 슬래쉬(/)를 제외하고 작성하여야 한다. 또 플레이어는 함수 텍스트 파일 내부에서 줄 맨앞에 #을 붙여서 명령어에 대한 설명을 작성 할 수 있다. 함수를 사용하면 커맨드 블록의 입력 한계값인 32,500보다 길게 쓸 수 있지만 내부에서 실행가능한 커맨드의 총합은 /gamerule maxCommandChainLength의 값으로 결정되고 기본값은 65,536자이다. /gamerule maxCommandChainLength의 설정값을 초과하는 명령어는 무시된다. 함수는 모든 명령을 단일 틱으로 실행하고 다른 함수 내에서 호출 된 함수는 부모함수와 동일한 틱으로 명령을 실행한다. 함수는 다른 함수를 사용하거나 커맨드 블록 환경에서 사용된다.[* 즉 함수가 사용하는 명령어는 커맨드 블록이 사용한 것과 같이 취급된다.] 여기에는 명령 발신자, 위치, 회전 등이 포함된다. 함수 내에서 발생하는 명령어의 문맥을 변경해도 명령 순서에 관계없이 다음 반복까지 동일한 함수 내 (또는 하위 함수 내)의 다른 명령에서 사용하는 명령 환경에 영향을 미치지 않는다. 단 / execute 명령은 예외이며 하위 함수의 명령 환경을 업데이트 한다. * 사용 예시 > execute as @a at @s run function foo:bar ||foo:bar >{{{#!wiki style="margin:1em calc(2em + 25px) 1em 1em" \#\#는 [[주석(언어)#프로그래밍 코드|주석]]을 의미합니다. teleport @s ~ ~5 ~ setblock ~ ~-1 ~ emerald_block execute at @s run setblock ~ ~-1 ~ diamond_block}}}|| 위와 같은 명령어를 플레이어가 사용하면 플레이어는 y좌표가 5칸 위인 위치로 텔레포트 한다. 그리고 플레이어가 원래 밟고 있던 블록은 에매랄드 블록으로 바뀌며 텔레포트한 위치 바로 아래에 다이아몬드 블록이 생성된다. 이러한 특성은 대상 선택인자 매개변수의 영향을 받지 않는다. @s라는 대상 지정 인자를 이용해서 엔티티가 함수를 사용하도록 할 수 있고, /execute as 로 연출자 엔티티를 수정하는 함수를 전 보다 잘 쓸 수 있는 가능성을 제시해 준다.[* 예를 들어서 좀비에 옷을 입히고 대사를 넣어서 마치 NPC가 플레이어를 안내하는 연출을 한다고 가정하자 전에는 스코어보드 명령어와 매개변수를 복잡하게 활용하고 밑에 특정 블록을 넣어서 좀비가 이를 따라가게 하는 식으로 연출했어야 했다. 하지만 함수를 사용하면 이 과정을 간단히 할 수 있고 훨씬더 적은 명령어로 이 연출을 가능하게 해준다.] 이것은 더 간단한 과정으로 대상 선택 인자로 선택한 특정 엔티티를 사용하는 연출을 보다 높은 퀄리티로 구현할 수 있게 해주며 일반적으로 월드의 엔티티 숫자를 줄일 수 있다. 또한, /schedule function 명령어로 일정 시간 후에 Function파일을 작동시킬 수 있어 시간차를 두고 명령어를 사용하고 싶을 때도 유용하다. 명령 블록으로는 레드스톤 중계기나 떨어지는 블록 등을 이용해야 하나, schedule 명령어 덕분에 function을 쓴다면 굳이 명령 블록을 쓸 이유가 없어진다. 이외에 다양항 방법으로 함수를 활용할 수 있으며, 스크립트, 플러그인에서만 지원하던 함수 기능을 마인크래프트로 가져옴으로써 플러그인을 덜 쓰고도 동일한 효과를 낼 수 있게 되었다. 이는 마인크래프트 서버를 더 쾌적한 환경으로 운영할 수 있는 가능성을 제시해 주며, 전에는 시도해 보지 못했던 다양한 연출을 사용함으로써 새로운 미니게임의 탄생을 촉구할 수 있다. {{{give @s spawner{display:{Name:'{"text":"Speed Husk Spawner","color":"#0B9914","bold":true}'},BlockEntityTag:{SpawnCount:5,SpawnRange:7,Delay:60,MinSpawnDelay:300,MaxSpawnDelay:900,MaxNearbyEntities:10000,RequiredPlayerRange:14,SpawnData:{id:"minecraft:husk",Glowing:1b,CustomNameVisible:1b,Health:30f,CanBreakDoors:0b,Tags:["SpeedHusk"],CustomName:'{"text":"Speed Husk","color":"#0B9C06","bold":true}',ArmorItems:[{},{},{id:"minecraft:golden_chestplate",Count:1b,tag:{Enchantments:[{id:"minecraft:protection",lvl:1s}]}},{}],ActiveEffects:[{Id:1b,Amplifier:3b,Duration:19999980,ShowParticles:1b}],Attributes:[{Name:generic.max_health,Base:30}]},SpawnPotentials:[{Weight:1,Entity:{id:"minecraft:husk",Glowing:1b,CustomNameVisible:1b,Health:30f,CanBreakDoors:0b,Tags:["SpeedHusk"],CustomName:'{"text":"Speed Husk","color":"#0B9C06","bold":true}',ArmorItems:[{},{},{id:"minecraft:golden_chestplate",Count:1b,tag:{Enchantments:[{id:"minecraft:protection",lvl:1s}]}},{}],ActiveEffects:[{Id:1b,Amplifier:3b,Duration:19999980,ShowParticles:1b}],Attributes:[{Name:generic.max_health,Base:30}]}}]}} 1}}} 이런 엄청난 길이의 코드를 파일에 저장하는 역할도 같이 할 수 있다. 따라서 서버 내 메모리 최척화와, 긴 명령어의 저장 등 다방면의 기능을 할 수 있기에, 코딩을 해야 한다면 커맨드블록을 최소화하고, 함수를 사용하는 것이 좋다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기